package string;


//  replace   取代
//  delete    删除
//  insert   插入
/**
 * StringBuilder修改字符串的性能
 * 为了解决修改字符串性能低下的问题，java提供了专门用于修改字符串的API：StringBuilder
 * StringBuilder内部维护了一个可变得char数组，修改内容性能优异
 * 并且提供了便于修改字符串内容的相关方法（增删改查）
 *
 * StringBuilder 与StringBuffer
 * StringBuffer始于JDK1.0,而StringBuilder开始与JDK1.5.
 * 区别是StringBuffer是线程安全的   而StringBuilder则不是线程安全的；
 *
 *
 *
 */

public class StringBuilderDemo {
    public static void main(String[] args) {
        String str="为了找个好工作";
        //内部表示一个空字符。
        //StringBuilder builder = new StringBuilder();
        //将给定的字符串赋值给StringBuilder中。
        StringBuilder builder = new StringBuilder(str);
        //StringBuffer  buffer=new  StringBuffer(str);
        System.out.println(builder);
        builder.append("我要好好学java");
        // builder.append将给定内容添加到字符串末尾
        System.out.println(str);
        System.out.println(builder);
        builder.replace(7,520,"我要拯救世界");
        //builder.replace将指定位置的字符串替换为新添加的
        System.out.println(builder);
        builder.delete(0,7);
        System.out.println(builder);
        // builder.delete删除指定位置的字符串。
        builder.insert(0,"活着");
        System.out.println(builder);
        //builder.insert在指定位置后插入字符串。
        builder.reverse();
        System.out.println(builder);
        //把字符串倒着排序。
       int  s=builder.indexOf("我");
       System.out.println(s);
       System.out.println(builder.length());
       char d=builder.charAt(3);
       System.out.println(d);
       /*
       StringBuilder是修改String 的一个工具而不是String类
       因此使用他修改后希望得到改后的String，我们可以通过调用他的
       toString方法获取
        */
        str=builder.toString();
       System.out.println(str);
    }
}
